24400
13796
Dus ik heb wat problemen met het uitzoeken van het juiste gebruik van list :: sort () met betrekking tot een lijst met structs. Hier is de relevante code:
struct student
{
char firstnm [20],
lastnm [20];
int id,
rang;
};
lijst  sList;
// Irrelevante code ...
cout << "Voer uw eigen naam, id en cijfer in. (Ex: myfirst mylast 0 12) \ n";
cin >> data.firstnm >> data.lastnm >> data.id >> data.grade;
sList.push_back (gegevens);
sList.sort ();
Het probleem dat ik probeer op te lossen, is het gebruik van sList.sort () om op id te sorteren. Ik heb echter geen idee hoe ik het correct in list :: sort () moet doorgeven. Bij voorbaat dank voor alle hulp / tijd!
EDIT: De oplossing was dit simpelweg toe te voegen aan mijn struct
bool-operator <(const student & cmp) const {
retourneer id 
                                
Je moet std :: sort eens bekijken. (https://en.cppreference.com/w/cpp/algorithm/sort) Er zijn meerdere definities van die functie, en een waar je kunt specificeren wat je wilt sorteren.
Kijk ook eens naar dat bericht, ik denk dat het is wat je nodig hebt: https://stackoverflow.com/a/21234017/6663947
Bewerk :
dat is een voorbeeld van comparator:
sList.sort ([] (const student & a, const student & b) {return a.id 
ongeldige sortering (vergelijk comp);
Ervan uitgaande dat u de studentobjecten in uw lijst wilt sorteren op de sleutel-id in oplopende volgorde. U kunt operator